package com.glink.gateway.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author : qiushaoshan
 * @create 2024/6/24 16:09
 */
@Mapper
public interface AuthMapper {
    /**
     * 查询用户角色关系表，根据用户ID查询角色信息
     * @param userId 用户ID
     * @return 所属角色列表
     */
    List<String> findRoleIdByUserId(@Param("userId") String userId);

    /**
     * 查询角色菜单关系表，根据角色ID列表查询所包含的菜单ID信息
     * @param roleIdList 角色ID列表
     * @return 菜单ID信息
     */
    List<String> findMenuIdByRoleIdIn(@Param("roleIdList") List<String> roleIdList);

    /**
     * 
     * @param menuIdList
     * @return
     */
    List<String> findMenuIdByMenuIdAndUri(@Param("menuIdList") List<String> menuIdList, @Param("uri") String uri);

    /**
     * 保存系统日志
     *
     * @param id           ID
     * @param logType      日志类型
     * @param userId       用户ID
     * @param userFullName 用户全名
     * @param content      内容
     * @param detail       详情
     * @param remoteIp
     */
    void saveSysLog(@Param("id") String id, @Param("logType") String logType, @Param("userId") String userId, @Param("userFullName") String userFullName, @Param("content") String content, @Param("detail") String detail, @Param("remoteIp") String remoteIp);

    /**
     * 根据orgId查询数量
     * @param orgId 班组
     * @return 数量
     */
    Integer countOrgByOrgId(@Param("orgId") String orgId);
}
